package com.xaicode.locker.JavaSJMS.three.BehaviorMode.Template;

/**
 * 主方法，提供抽象方法供子类实现
 * @author Locker
 * 	  <br> 2017年5月5日 上午11:17:25
 * @version v1.0
 */
public abstract class AbstractCalculator {

	// 主方法，实现对本类其它方法的调用
	public final int calculate(String exp, String opt) {
		int[] arrayInt = split(exp, opt);
		return calculate(arrayInt[0], arrayInt[1]);
	}
	
	// 被子类重写的方法
	public abstract int calculate(int num1, int num2);
	
	public int[] split(String exp, String opt) {
		String array[] = exp.split(opt);
		int arrayInt[] = new int[2];
		arrayInt[0] = Integer.parseInt(array[0]);
		arrayInt[1] = Integer.parseInt(array[1]);
		return arrayInt;
	}
	
}
